/**
 * 文件名：@Context.java <br/>
 * 包名：cn.efunbox.afw.core.mvc.context <br/>
 * 项目名：afw-core <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.core.mvc.context;

import java.util.Locale;
import java.util.Map;

/**
 * 类名：Context  <br />
 *
 * 功能：上下文行为定义
 *
 * @author xtwin <br />
 * 创建时间：2015年12月1日 下午2:32:28  <br />
 * @version 2015年12月1日
 */
public interface Context {

	/**
	 * 
	 * 功能：取得当前的用户 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015-6-26 下午02:20:30 <br/>
	 */
	<T> T getUser();
	
	/**
	 * 
	 * 功能：放入当前的用户 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2015-6-26 下午02:21:37 <br/>
	 */
	void setUser(Object user);
	
	/**
	 * 
	 * 功能：取得当前的区域对象 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:20:24 <br/>
	 */
	Locale getLocale();
	
	/**
	 * 
	 * 功能：设置当前的区域对象 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:20:43 <br/>
	 */
	void setLocale(Locale locale);

	/**
	 * 
	 * 功能：取得结果标志 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:18:52 <br/>
	 */
	int getResult();
	
	/**
	 * 
	 * 功能：更新结果标志 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:18:49 <br/>
	 */
	void setResult(int result);
	
	/**
	 * 
	 * 功能：取得指定名称的参数值 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:18:45 <br/>
	 */
	<V> V getValue(String name);
	
	/**
	 * 
	 * 功能：更新指定名称的参数值 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:18:42 <br/>
	 */
	void setValue(String name, Object value);
	
	/**
	 * 
	 * 功能：取得当前上下文中的所有参数 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2013-11-21 下午03:18:38 <br/>
	 */
	Map<String, Object> getValue();
}
